import request from './request'

/**
 * 订单相关API
 */

/**
 * 创建订单
 * @param {Object} data - 订单数据
 * @param {number} data.addressId - 收货地址ID
 * @param {Array} data.cartIds - 购物车项ID数组
 * @param {string} data.remark - 订单备注
 * @returns {Promise} 创建订单响应
 */
export const createOrder = (data) => {
    return request({
        url: '/api/user/orders',
        method: 'POST',
        data
    })
}

/**
 * 获取用户订单列表
 * @param {Object} params - 查询参数
 * @param {number} params.current - 当前页
 * @param {number} params.size - 每页大小
 * @param {number} params.status - 订单状态
 * @returns {Promise} 订单列表响应
 */
export const getUserOrders = (params) => {
    return request({
        url: '/api/user/orders',
        method: 'GET',
        params
    })
}

/**
 * 获取订单详情
 * @param {number} id - 订单ID
 * @returns {Promise} 订单详情响应
 */
export const getOrderDetail = (id) => {
    return request({
        url: `/api/user/orders/${id}`,
        method: 'GET'
    })
}

/**
 * 取消订单
 * @param {number} id - 订单ID
 * @param {string} reason - 取消原因
 * @returns {Promise} 取消订单响应
 */
export const cancelOrder = (id, reason = '用户取消') => {
    return request({
        url: `/api/user/orders/${id}/cancel`,
        method: 'PUT',
        data: {
            reason: reason
        }
    })
}

/**
 * 确认收货
 * @param {number} id - 订单ID
 * @returns {Promise} 确认收货响应
 */
export const confirmOrder = (id) => {
    return request({
        url: `/api/user/orders/${id}/receive`,
        method: 'PUT'
    })
}

/**
 * 支付订单
 * @param {number} id - 订单ID
 * @param {Object} data - 支付数据
 * @param {number} data.paymentType - 支付方式
 * @returns {Promise} 支付响应
 */
export const payOrder = (id, data) => {
    return request({
        url: `/api/user/orders/${id}/pay`,
        method: 'PUT',
        data
    })
}
